home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Java 1996 August
/
Java - Summer 1996.iso
/
kaffe-0.2
/
README
< prev
next >
Wrap
Text File
|
1996-02-19
|
6KB
|
153 lines
KAFFE v0.2 - A JIT virtual machine to run Java(tm)* code
========================================================
This is Kaffe, a virtual machine design to execute Java bytecode. Unlike
other virtual machines available, this machine performs "just-in-time"
code conversion from the abstract code to the host machine's native code.
This will ultimately allow execution of Java code at the same speed as
standard compiled code but while maintaining the advantages and flexibility
of code independence.
What can run Kaffe
==================
This version of Kaffe will run on the following platforms:
i386 FreeBSD 2.0.5R & 2.1.0R (tested)
i386 Linux 1.2.13 (tested)
i386 NetBSD 1.1R (untested)
i386 Solaris 2.4 (untested)
Although the system is relatively portable, because it generates native
opcode internally, it is necessary to write additional code generators
for each new architecture which is to be supported. Future platforms
will be added to this system as and when the author has time and the
resources to do them.
Who can use Kaffe
=================
This version of Kaffe is distributed under a Berkeley style license.
Essentially you can use Kaffe for both personal and commerical purpose, on
its own or as part of another package (see license.terms for full details).
Major changes in Kaffe v0.2
===========================
* All virtual machine instructions are now supported.
* Array are now fully supported.
* Full threading and locks now supported.
* Garbage collection now supported.
* Majority of native library support complete.
* Sub generator now correctly handles all standard data types.
* Better native support added.
* Zip files can now be read.
* Autoconf installation support.
Compiling Kaffe
===============
The machine comes complete with the interpreter, stub generator, and
supporting native libraries. Compilation is controlled using the
GNU autoconf program. To generate the necessary makefiles
type "./configure" in this directory. This will identify your system
and configure the software appropriately. Compilation should then be
a simple matter of typing "make" in this directory. By default, the
system will install into the /usr/local hierarchy as per the standard
GNU coding rules (not that this is slightly different from release 0.1 so
you might want to clear it away first). This can be changed using the
--prefix option to configure. To install the binaries type "make install".
Note that this program needs GNU GCC-2.6.3 or later as it makes use of
some of GCC's extensions.
Running Kaffe
=============
For simplicity, this version of Kaffe is supplied with a copy of the
class library from Sun's Java JDK-1.0. The latest copy of this package
can be obtained from http://www.javasoft.com. This zipped file will be
automatically installed in the correct directory.
Before running Kaffe it is necessary to configure the environment.
This requires the setting of CLASSPATH, KAFFEHOME and LD_LIBRARY_PATH.
For the standard installation these would be defined as follows:
CLASSPATH=.:/usr/local/share/kaffe/classes.zip
KAFFEHOME=/usr/local/share/kaffe
LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
A file "ENVIRONMENT" is generated by the configure program which contains
a /bin/sh environment setup. This may help you to figure out what to
set to what if you alter the standard installation point.
The source comes with a test program "HelloWorldApp" which can be found
in the test directory in the distribution. After installation, run this
program from the test directory by typing the following:
cd <java source directory>/test
kaffe HelloWorldApp
This should load and execute the HelloWorld application. If all is well
it will print "Hello World!". As a further test you might like to try
compiling the HelloWorldApp source. To do this type the following:
javac HelloWorldApp.java
"javac" is a shell script which has been provided to invoke Kaffe on
the standard Java compiler. If all is well, the application should compile
without incident.
The state of play
=================
Kaffe should now run all non-graphical code which will run on a Java
machine. However there are still bugs and plenty of untested native
library functions. Some functions which are not currently implemented
(most often because I don't understand exactly what they are suppose to
do) will simply abort if called. If you can help out on any of these
then please do *BUT* remember, this is a clean-room implementation (I
have never seen any of Sun's Java source code) and I cannot simply
encorporate Javasoft's code.
Kaffe is known to correctly run Javasoft's Java compiler "javac" (which is
included in the classes.zip file and a shell script is included to help
run it) plus a number of small test programs. However, other major
programs have not been tested.
Kaffe and Sun's Java
====================
Kaffe is a clean-room implementation of a virtual machine which can run
Java bytecode. It is capable of interpreting code generated by Sun's
software but has not been derived from any Sun code. Currently this version
utilises Sun's freely available compiled class library but it is hoped
that this will be replaced with a freely available version in due time.
At the moment it is impossible to validate whether this software is
Java compatible(tm) (the test suites are not publically available) and
the terms under which this can be claimed are unknown.
Help wanted
===========
The Kaffe virtual machine is far from complete. Anyone who wants to
contribute to this project should contact me on the address given below.
I particularly need help on the following:
* Public domain version of the class libraries.
* Native support for the AWT and Motif libraries.
* Public domain WWW browser facilties (either built using Kaffe or
encorporating Kaffe).
Erm, that's it ....
Tim Wilkinson
<tim@sarc.city.ac.uk>
----
* Java, Javasoft, and Java Virtual Machine are registered trademark of
Sun Microsystems, Inc.